package com.ksd.web.controller.upload;

import java.io.*;

public class FileUsingIO {
    public static void moveFile(String sourcePath, String destinationPath) {
//        System.out.println("音乐开始进行moveFile复制的源文件地址:"+sourcePath);
//        System.out.println("复制的目标文件地址:"+destinationPath);
        File sourceFile = new File(sourcePath);
        File destinationFile = new File(destinationPath);

        // 检查源文件是否存在
        if (!sourceFile.exists()) {
            System.out.println("音乐源文件不存在。");
            return;
        }

        //检查目标文件是否已存在,如果存在,删除,重新复制
        if (destinationFile.exists()) {
            boolean delete = destinationFile.delete();
            System.out.println("音乐目标文件已存在:"+destinationPath+"将其删除:"+delete);
        }

        // 检查目标文件的父目录是否存在，如果不存在则创建
        File parentDir = destinationFile.getParentFile();
        if (parentDir != null &&!parentDir.exists()) {
            if (!parentDir.mkdirs()) {
                System.out.println("音乐无法创建目标目录。");
                return;
            }
        }

        try (InputStream in = new FileInputStream(sourceFile);
             OutputStream out = new FileOutputStream(destinationFile)) {
            byte[] buffer = new byte[4096];
            int bytesRead;
            // 复制文件内容
            while ((bytesRead = in.read(buffer)) != -1) {
                out.write(buffer, 0, bytesRead);
            }
        } catch (IOException e) {
            System.out.println("文件移动过程中出现错误。");
            e.printStackTrace();
        }
        // 删除原文件
//        sourceFile.delete();
    }

    public static void main(String[] args) {
        String sourcePath = "path/to/source/file.txt";
        String destinationPath = "path/to/destination/file.txt";
        moveFile(sourcePath, destinationPath);
    }
}
